package com.lanyou.esb.cook.proxy.service;

import com.lanyou.esb.cook.proxy.entity.Http;
import com.lanyou.esb.cook.proxy.exception.AuthException;

/**
 * HTTP接口服务接口
 * 
 * @author Davey.wu
 */
public interface HttpService {
	/**
	 * 加载所有HTTP信息到REDIS
	 */
	void loadAllToRedis();

	/**
	 * 获取接口信息
	 * 
	 * @param systemCode
	 *            ：系统编码
	 * @param ifCode
	 *            ：接口编码
	 * @param ifVersion
	 *            ：接口版本
	 * @return
	 */
	Http get(String systemCode, String ifCode, String ifVersion);

	/**
	 * 重新加载接口信息
	 * 
	 * @param http
	 *            ：接口信息
	 * @return
	 */
	void reload(Http http);

	/**
	 * 校验接口是否可用
	 * 
	 * @param http
	 *            ：接口信息
	 * @throws AuthException
	 */
	void validate(Http http) throws AuthException;
}
